A request for consumption of a resource is typically checked against a limit associated with the resource in order to ensure that the resource is not consumed beyond the limit.
In an example, with reference to FIG. 1, when a user at a client computer (105) submits a request to buy shares from a request processing system (120), an associated limit comprising a value (115) (residing on a limit value checking system (110)) is typically set (e.g. by the client computer (105), the limit value checking system (110) or the request processing system (120)).
The limit value is associated with the user's account and specifies a limit beyond which an associated resource (i.e. account funds) cannot be consumed. That is, an amount of funds associated with any request(s) for shares will not be permitted to exceed the limit value.
The limit value checking system (110) processes a request by checking a value of the request against the limit value (115) in order to determine whether the value exceeds the limit value. If the limit value is exceeded, the request is rejected or a notification is sent to the client computer (105).
If the limit value is not exceeded, the limit value checking system (110) passes the request to the request processing system (120) which processes the request.
The limit value checking system (110) can process plural requests received from a single account concurrently. However, there are risks associated with concurrent processing.
For example, an account has a limit value of £1000 and two concurrent requests to buy shares, each with a value of £501, are received. In response, two concurrent processes (each unaware of the other) make checks against the limit value and each process determines that a request to buy shares of a value of £501 will not exceed the limit value of £1000. Thus, both requests are authorised, however, the total value of both requests is £1002 (i.e. £2 over the limit value).
Thus, the authorisation of both requests causes risk, as the client computer (105) can request to buy shares having an aggregate value that exceeds the limit value placed on the user account. That is, the associated resource (e.g. account funds) can be consumed beyond the limit.
In order to prevent this risk, requests are checked serially. Thus, using the example above, a first request with a value of £501 is checked and passed to the request processing system (120) as the limit value will not be exceeded. A second request with a value of £501 will be rejected as the value of the second request causes the limit value to be exceeded.
However, a drawback of serial processing is that the time taken to serially check requests against a limit value causes a reduction in throughput of the overall request handling process. Thus, as request volumes for a single account increase (e.g. due to automated requestor computer programs), the reduction in throughput affects the ability of systems to meet the needs of users.